2023/12/231372字符

运算符

算数运算符

  • +, -, *, /, %, ++, --
package main

import "fmt"

func main() {
  var a = 10
    var b = 3
    fmt.Printf("%d / %d = %d\n", a, b, a / b)  //--> 10 / 3 = 3
    fmt.Printf("%d %% %d = %d\n", a, b, a % b)  //--> 10 % 3 = 1

  a++  // 并且 ++ 不能放在前面
    fmt.Println(a)  //--> 11
}

关系运算符

不同类型之间不能比较

  • ==, !=, >, <, >=, <=

逻辑运算符

  • &&, ||, !

位运算符

  • &, |, ^, &^ (位清空), <<, >> (将数值转为二进制后,按位运算)

  • &: 对应值都为 1 得 1,否则为 0

  • |: 对应值都为 0 得 0,否则为 1

  • ^:

    • 二元:对应值不同为 1,相同为 0
    • 一元:按位取反
  • &^: a &^ b 对于 b 的值如果为 0,取 a 上面的数值;如果为 1,取 0

/*
  a: 60  0011 1100
  b: 13  0000 1101

  &      0000 1100
  |      0011 1101
  ^      0011 0001
  &^     0011 0000
*/
  • <<: a << b 按位左移,将 a 向左移动 b 位
  • >>: a >> b 按位右移,将 a 向右移动 b 位
package main

import "fmt"

func main() {
  var a = 10
    /* 
      a:  0000 1000
      <<  0010 0000
      >>  0000 0010
    */
    fmt.Println(a << 2)  //--> 40
    fmt.Println(a >> 2)  //--> 2
}

赋值运算符

  • =, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=...